package com.hujesse.controller;

import com.google.gson.Gson;
import com.hujesse.pojo.Dept;
import com.hujesse.service.DeptServiceImpl;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * hystrix不是集群吗.应该是一个类里全是正常服务,另一个类里是备份,主服务崩了有hystrix就行了
 */
@RestController
public class DeptController {
    @Autowired
    private DeptServiceImpl deptService;

    // 因为是测试hystrix，所以只测试一个方法
    // 根据id查询部门
    @HystrixCommand(fallbackMethod="hystrixGetId")
    @GetMapping("/get/{id}")
    public String getId(@PathVariable("id") Long id){
        Dept byId = deptService.getById(id);
        if (null==byId){
            throw  new RuntimeException("没有具体的id");
        }
        return new Gson().toJson(byId);
    }

    public String hystrixGetId(@PathVariable("id") Long id){
        Dept dept = new Dept(id,"id=>"+id+"没有具体的值@Hystrix","没有对应的数据库");
        return new Gson().toJson(dept);
    }


}
